home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 2000 October / Software of the Month - Ultimate Collection Shareware 277.iso / pc / PROGRAMS / UTILITY / WINLINUX / DATA1.CAB / programs_-_include / ASM-PPC / BOOTX.H < prev    next >
Encoding:
C/C++ Source or Header  |  1999-09-17  |  2.4 KB  |  84 lines

  1. /*
  2.  * This file describes the structure passed from the BootX application
  3.  * (for MacOS) when it is used to boot Linux.
  4.  *
  5.  * Written by Benjamin Herrenschmidt.
  6.  */
  7.  
  8.  
  9. #ifndef __ASM_BOOTX_H__
  10. #define __ASM_BOOTX_H__
  11.  
  12. #ifdef macintosh
  13. #include <Types.h>
  14. #endif
  15.  
  16. #ifdef macintosh
  17. /* All this requires PowerPC alignment */
  18. #pragma options align=power
  19. #endif
  20.  
  21. /* On boostrap entry:
  22.  *
  23.  * r3 = 0x426f6f58    ('BooX')
  24.  * r4 = pointer to boot_infos
  25.  * r5 = NULL
  26.  */
  27.  
  28. #define BOOT_INFO_VERSION        2
  29. #define BOOT_INFO_COMPATIBLE_VERSION    1
  30.  
  31. /* Here are the boot informations that are passed to the bootstrap
  32.  * Note that the kernel arguments and the device tree are appended
  33.  * at the end of this structure. */
  34. typedef struct boot_infos
  35. {
  36.     /* Version of this structure */
  37.     unsigned long    version;
  38.     /* backward compatible down to version: */
  39.     unsigned long    compatible_version;
  40.     
  41.     /* NEW (vers. 2) this holds the current _logical_ base addr of
  42.        the frame buffer (for use by early boot message) */
  43.     unsigned char*    logicalDisplayBase;
  44.  
  45.     /* Set to 0 by current BootX */
  46.     unsigned long    unused[2];
  47.     
  48.     /* The device tree (internal addresses relative to the beginning of the tree,
  49.      * device tree offset relative to the beginning of this structure). */
  50.     unsigned long    deviceTreeOffset;    /* Device tree offset */
  51.     unsigned long    deviceTreeSize;        /* Size of the device tree */
  52.         
  53.     /* Some infos about the current MacOS display */
  54.     unsigned long    dispDeviceRect[4];    /* left,top,right,bottom */
  55.     unsigned long    dispDeviceDepth;    /* (8, 16 or 32) */
  56.     unsigned char*    dispDeviceBase;        /* base address (physical) */
  57.     unsigned long    dispDeviceRowBytes;    /* rowbytes (in bytes) */
  58.     unsigned long    dispDeviceColorsOffset;    /* Colormap (8 bits only) or 0 (*) */
  59.     /* Optional offset in the registry to the current
  60.      * MacOS display. (Can be 0 when not detected) */
  61.      unsigned long    dispDeviceRegEntryOffset;
  62.  
  63.     /* Optional pointer to boot ramdisk (offset from this structure) */
  64.     unsigned long    ramDisk;
  65.     unsigned long    ramDiskSize;        /* size of ramdisk image */
  66.     
  67.     /* Kernel command line arguments (offset from this structure) */
  68.     unsigned long    kernelParamsOffset;
  69.         
  70. } boot_infos_t;
  71.  
  72. /* (*) The format of the colormap is 256 * 3 * 2 bytes. Each color index is represented
  73.  * by 3 short words containing a 16 bits (unsigned) color component.
  74.  * Later versions may contain the gamma table for direct-color devices here.
  75.  */
  76. #define BOOTX_COLORTABLE_SIZE    (256UL*3UL*2UL)
  77.  
  78. #ifdef macintosh
  79. #pragma options align=reset
  80. #endif
  81.  
  82. #endif
  83.  
  84.